* Dieses Script zeigt den Umgang mit einige Befehlen, die die internen
* Listen von WRITE unterstützen.
*/
IF ~show('P',"WRITE")
THEN DO
say 'Dieses Script läuft nur, wenn WRITE bereits gestartet wurde !'
exit 10
END
ADDRESS "WRITE"
OPTIONS RESULTS
'VERSIONCHECK 40000 "ListDemo.wrx"'
IF RC~=0 THEN DO
exit 10
END
'MESSAGEOK "Dieses REXX-Script demonstriert\nden Umgang mit den Befehlen\nCLEARLIST, ADDLIST, SHOWLIST,\nLOADBUFFER, SAVEBUFFER,\nLISTTOBUFFER, BUFFERTOLIST\nDOLIST und GETFILES!"'
'MESSAGEOK "Wir generieren eine Liste\nmit diversen Einträgen..."'
CLEARLIST 0
'ADDLIST "Hallo Leute !" 0 '
'ADDLIST "Dies ist ein Test..." 0'
'ADDLIST "Eintrag Nummer 3" 0'
'ADDLIST "Mir fällt nichts mehr ein #@/&% !" 0'
'ADDLIST "So here I am one more..." 0'
'ADDLIST "Buh !" 0'
'ADDLIST "Ende der Liste !" 0'
'MESSAGEOK "Ok.\n\nNun kann man sich mittels des\nSHOWLIST-Befehls diese Liste\nanzeigen lassen..."'
'SHOWLIST 0 0'
'MESSAGEOK "...oder sogar ein Element\nder Liste auswählen !"'
'SHOWLIST 0 0 {@SELECT}'
IF RC~=0 THEN DO
'MESSAGEOK "Sie haben nichts\nausgewählt."'
END
ELSE DO
'MESSAGEOK "Sie haben den Eintrag\n\"&RESULT&\"\nausgewählt!"'
END
'MESSAGEOK "Num machen wird aus der Liste\neinen Buffer !"'
LISTTOBUFFER 0 0
'MESSAGEOK (Diesen speichern wir nun als\n"ram:test"\nab.)'
'SAVEBUFFER "ram:test" 0'
'MESSAGEOK "Dieser wird nun wieder geladen..."'
'LOADBUFFER "ram:test" 0'
'MESSAGEOK "In eine Liste konvertiert...\n\n(Dabei wird die alte Liste nicht gelöscht,\n sondern die neue an die alte angefügt !)"'
'BUFFERTOLIST 0 0'
'MESSAGEOK "und wieder angezeigt !"'
'SHOWLIST 0 0'
'MESSAGEOK "Es geht aber auch anders.\n\nWir laden die Liste aus der Ram Disk\nin den Buffer..."'
'LOADBUFFER "ram:test" 0'
'MESSAGEOK "Löschen die Liste vorher..."'
'CLEARLIST 0'
'MESSAGEOK "Und konvertieren wieder..."'
'BUFFERTOLIST 0 0'
'SHOWLIST 0 0'
'MESSAGEOK "Und weiter geht`s...\n\nWir generieren zwei Listen..."'
CLEARLIST 0
'ADDLIST "Eintrag 1" 0 '
'ADDLIST "Eintrag 2" 0 '
'ADDLIST "Doppelter Eintrag" 0 '
'ADDLIST "Eintrag 4" 0 '
'ADDLIST "Eintrag 5" 0 '
'ADDLIST "Eintrag 6" 0 '
'MESSAGEOK "Die erste Liste..."'
'SHOWLIST 0 0'
CLEARLIST 1
'ADDLIST "Eintrag A" 1 '
'ADDLIST "Eintrag B" 1 '
'ADDLIST "Doppelter Eintrag" 1 '
'ADDLIST "Eintrag D" 1 '
'ADDLIST "Eintrag E" 1 '
'ADDLIST "Eintrag F" 1 '
'MESSAGEOK "...und die zweite..."'
'SHOWLIST 1 0'
'MESSAGEOK "Aus der zweiten Liste machen wir einen Buffer,\nund fügen diesen an die erste Liste an.\nDabei sollen doppelte Einträge nicht noch\neinmal angefügt werden."'
'LISTTOBUFFER 1 0'
'BUFFERTOLIST 0 0 {@NODUP}'
'SHOWLIST 0 0'
'MESSAGEOK (Schließlich rufen wir die\nFunktion DOLIST auf.\nSie geht selbstständig durch die Liste und\nruft für jedes Listenelement\neine frei wählbare FunktionListe auf\nIn diesem Fall"MesssageOk".)'
'DOLIST 0 MessageOk _RS;'
'MESSAGEOK "OK."'
'MESSAGEOK "Nun eine weitere Funktion,\ndie Listen unterstützt :\n\nGETFILES.\n\nWählen sie mittels des\nFilerequesters einige Files aus."'
CLEARLIST 0
'GETFILES "0" "" ""'
IF RC~=0 THEN DO
'MESSAGEOK "Sie haben keine Files ausgewählt !"'
END
ELSE DO
'MESSAGEOK "Sie haben folgende Files ausgewählt :"'
SHOWLIST 0 0
'MESSAGEOK "Nun könnte man mit 'DOLIST'\nalle ausgewählten Files z.B. laden\noder auch in ihnen nach\neiner Zeichenkette suchen etc..."'